package com.idea.dsl.model;

import lombok.Data;
import lombok.Builder;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

import java.util.List;

/**
 * 大模型响应模型
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ModelResponse {
    
    /**
     * 响应ID
     */
    private String id;
    
    /**
     * 选择列表
     */
    private List<Choice> choices;
    
    /**
     * 使用情况
     */
    private Usage usage;
    
    /**
     * 模型名称
     */
    private String model;
    
    /**
     * 创建时间
     */
    private Long created;
    
    /**
     * 选择项
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class Choice {
        /**
         * 索引
         */
        private Integer index;
        
        /**
         * 消息
         */
        private ModelRequest.Message message;
        
        /**
         * 结束原因
         */
        private String finishReason;
    }
    
    /**
     * 使用情况
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class Usage {
        /**
         * 提示token数
         */
        private Integer promptTokens;
        
        /**
         * 完成token数
         */
        private Integer completionTokens;
        
        /**
         * 总token数
         */
        private Integer totalTokens;
    }
}
